package balmysundaycandy.morelowlevel.sample.model;

import org.jquantlib.Settings;
import org.jquantlib.daycounters.Actual365Fixed;
import org.jquantlib.daycounters.DayCounter;
import org.jquantlib.instruments.Option;
import org.jquantlib.time.Calendar;
import org.jquantlib.time.Date;
import org.jquantlib.time.Month;
import org.jquantlib.time.calendars.Target;

/**
 * calcuration argument for black-scholes model.
 * 
 * @author marblejenka
 *
 */
public class BlackScholesArgument {
	final Calendar calendar = new Target();
	static {
		final Date todaysDate = new Date(15, Month.May, 1998);
		new Settings().setEvaluationDate(todaysDate);
	}
	
	// deal condition
	final Option.Type type = Option.Type.Put;
	final double strike = 40.0;
	final double underlying = 36.0;
	final Date maturity = new Date(17, Month.May, 1999);
	final Date settlementDate = new Date(17, Month.May, 1998);
	final DayCounter dayCounter = new Actual365Fixed();

	// market condition
	/* @Rate */final double riskFreeRate = 0.06;
	final double volatility = 0.2;
	final double dividendYield = 0.00;
	
	
	// *******************************
	// accesser
	// *******************************
	public Calendar getCalendar() {
		return calendar;
	}
	public Option.Type getType() {
		return type;
	}
	public double getStrike() {
		return strike;
	}
	public double getUnderlying() {
		return underlying;
	}
	public Date getMaturity() {
		return maturity;
	}
	public Date getSettlementDate() {
		return settlementDate;
	}
	public DayCounter getDayCounter() {
		return dayCounter;
	}
	public double getRiskFreeRate() {
		return riskFreeRate;
	}
	public double getVolatility() {
		return volatility;
	}
	public double getDividendYield() {
		return dividendYield;
	}

}
